package org.smart4j.chapter1;

import javafx.scene.input.DataFormat;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import static java.lang.System.currentTimeMillis;

/**
 * Created by qwerty on 2015/11/3.
 * 继承HttpServlet类，使该类成为一个Servlet类。
 * todo:什么是servlet类？
 * todo:什么是servlet3.0规范的注解？什么是webservlet注解？
 */
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    /**
     * 覆盖父类的doGet方法，用于接收GET请求。
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    @SuppressWarnings("JavaDoc")
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //MM是月份，mm是分；HH是24小时制，而hh是12小时制
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //将Date转换为字符串,todo:currentTimeMillis()与new Date()的区别
        String currentTime = sdf.format(new Date());
        System.out.println(currentTime);
        //将字符串转换Date
        try {
            Date setTime = sdf.parse("2015-11-06 10:10:10");
            System.out.println(setTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //构造一个Date对象，并根据相对于GMT 1970年1月1日00:00:00的毫秒数对其进行初始化。
        Date curd = new Date(2015110521);
        System.out.println(curd);
        //构造一个Date对象并对其进行初始化以反映当前时间。
        Date curs = new Date();
        System.out.println(curs);
        try {
            curd = sdf.parse("2016-11-11 11:11:11");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //todo:时间的比较方法
        System.out.println(curd.after(curs));
        System.out.println(curd.before(curs));
        System.out.println(curd.compareTo(curs));
        //todo:req.getParameter("")与req.getAttribute("")的区别。
        req.setAttribute("currentTime",currentTime);
        //使用getRequestDispatcher进行请求转发，todo:请求转发原理。
        req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req,resp);
    }
}
